﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace ImoutoDesktop.Remoting
{
    public interface IRemoteService
    {
        // ログイン処理
        bool Login(string password);
        // コネクション確認
        bool IsConnecting { get; }
        // ファイル I/O
        FileStream OpenFile(string path, FileMode mode);
        string[] GetFiles(string path, string searchPattern);
        string[] GetDirectories(string path, string searchPattern);
        Exists Exists(string path);
        bool DeleteFile(string path);
        bool CopyFile(string sourcePath, string destPath);
        bool MoveFile(string sourcePath, string destPath);
        // 種類取得
        DirectoryType GetDirectoryType(string directory);
        // 特殊ディレクトリ
        string GetFolderPath(Environment.SpecialFolder folder);
        // DOS コマンド実行
        string ExecuteCommand(string command);
        // ファイル実行
        bool ExecuteProcess(string fileName, string argument);
        bool CloseProcess(string name);
        // シャットダウン
        void Shutdown();
        // スクリーンショット取得
        Stream GetScreenshot(int width);
        // カレントディレクトリ
        string CurrentDirectory { get; set; }
    }

    public enum Exists
    {
        None,
        File,
        Directory,
    }

    public enum ErrorResult
    {
        None,
        NotFound,
    }

    [Flags]
    public enum DirectoryType
    {
        None,
        Empty,
        Picture,
        Movie,
        Music,
        Document,
        Mixed,
    }
}
